<?php
/**
 * Created by PhpStorm.
 * User: xiaotao
 * Date: 18-6-11
 * Time: 下午9:23
 */

namespace app\index\controller;
use app\common\model\Article;
use app\common\model\Category as CategoryM;

class Category extends Basic
{
    /**
     * 获取指定类型的内容列表
     * @param int $cate 1为case案例展示
     * @return mixed
     */
    public function index($cate = 1) {
        // 需要判断 $cate 的有效性
        $temp = CategoryM::where('status', 1)->find($cate);

        // 当前的分类
        // 需要根据当前分类，获取从父级到自己的完整树形结构
        $category = $this->getCategory($temp->group);

        // 处理导航条和页面顶部的banner

        // 模板选择（case案例展示对应list0,）
        $template = 'list' . $category['group'];

        // show_type 应该单独加字段，此处未处理，于group共用
        // 获取列表，如果是父分类，需要查找所有子分类，这里偷懒处理
        $map = [];
        if ($temp['pid'] > 0) {
            $map[] = ['category_id', '=', $temp->id];
        } else {
            $map[] = ['group', '=', $temp->group];
        }
        // 应该分页处理
        $fields = ['id', 'title' => 'name', 'abstract', 'keyword', 'banner', 'favor', 'source'];
        $list = Article::where($map)->field($fields)->paginate(3);

        // 模板输出和渲染
        $this->assign([
            'category' => $category,
            'list'      => $list
        ]);
        return $this->fetch($template);
    }


    /**
     * 显示文章列表
     * @param $id
     * @return mixed
     */
    public function detail($id) {
        //获取案例分类和案例具体内容
        $fields = ['id', 'title' => 'name', 'abstract', 'keyword', 'banner', 'favor', 'source', 'create_time', 'content'];
        $article    = Article::field($fields)->find($id);

        // 错误处理
        if (!$article) {

        }
        // 每次阅读数加1，延迟10秒后更新数据
        $article->setInc('favor',1, 10);

        $category= $this->getCategory($article->group);

        //模板赋值
        $this->assign([
            'article'   => $article,
            'category'  => $category
        ]);
        return $this->fetch();
    }
}